/*
 * VideoWindow.h
 *
 *  Created on: 2018年6月9日
 *      Author: zhengboyuan
 */

#ifndef VIDEOWINDOW_H_
#define VIDEOWINDOW_H_

#include "MediaType.h"

struct AVFrame;

namespace av
{

class VideoWindow
{
public:
    virtual ~VideoWindow() {}

    virtual int open(void* hwnd) =0;
    virtual void close() =0;
    virtual bool isOpen() =0;

    virtual void setState(StreamState state) =0;

    virtual bool draw(AVFrame* frame) =0;

    virtual void flush() =0;

    virtual bool setRatio(int width, int height) =0;

    virtual void setVisible(bool visible) =0;

    virtual bool isFullscreen() =0;

    virtual bool setFullscreen(bool full) =0;

    virtual bool setBackImage(const char* filepath) =0;

};


} /* namespace av */

#endif /* VIDEOWINDOW_H_ */
